package main

import (
	"fmt"
	"io"
	"os"
	"io/ioutil"
)

func readSeek(f *os.File) {
	buf := make([]byte, 1024)
	var str string
	//重置文件指针，否则读取不到内容
	//SEEK_SET	相对文件开始偏移量
	//SEEK_CUR	相对文件指针当前位置偏移量
	//SEEK_END	相对文件末尾偏移量
	f.Seek(0, os.SEEK_SET)
	for {
		n, ferr := f.Read(buf)
		if ferr != nil && ferr != io.EOF {
			fmt.Println(ferr.Error())
			break
		}
		if n == 0 {
			break
		}
		fmt.Println(n)
		str += string(buf[0:n])
	}
	fmt.Println(str)
	f.Close()
}

func readAll(f *os.File) {
	defer f.Close()
	buf, err := ioutil.ReadAll(f)
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	fmt.Println(string(buf))
}
func readFile() {
	buf, err := ioutil.ReadFile("D:\\text.txt")
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	fmt.Println(string(buf))
}

func main() {
	f, err := os.OpenFile("D:\\text.txt", os.O_RDONLY | os.O_APPEND | os.O_CREATE, 0666)
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	f.WriteString("刘大伟")
	//readSeek(f)
	readAll(f)
	readFile()
}
